package com.ruoyi.business.domain.bo;

import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.math.BigDecimal;

/**
 * 发票业务对象 invoice_info
 *
 * @author ruoyi
 * @date 2024-04-20
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class InvoiceInfoBo extends BaseEntity {

    /**
     * 发票id
     */
    @NotNull(message = "发票id不能为空", groups = { EditGroup.class })
    private Long invoiceId;

    /**
     * 账号id(当前订单)
     */
    @NotNull(message = "账号id(当前订单)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long relevanceUserId;

    /**
     * 发票金额
     */
    @NotNull(message = "发票金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal invoiceAmount;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 其他参数
     */
    @NotBlank(message = "其他参数不能为空", groups = { AddGroup.class, EditGroup.class })
    private String elseParams;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @NotNull(message = "删除标志（0代表存在 1代表删除）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isDeleted;

    /**
     * 接收邮箱
     */
    @NotBlank(message = "接收邮箱不能为空", groups = { AddGroup.class, EditGroup.class })
    private String receivingMailbox;

    /**
     * 公司名称
     */
    @NotBlank(message = "公司名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyName;

    /**
     * 统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingUSCI;

    /**
     * 开票开户行
     */
    @NotBlank(message = "开票开户行不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingOpeningBank;

    /**
     * 开票账户
     */
    @NotBlank(message = "开票账户不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingAccountNumber;

    /**
     * 开票电话
     */
    @NotBlank(message = "开票电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String billingTel;


}
